package com.jch.definition;

import io.netty.buffer.ByteBuf;
import io.netty.channel.ChannelHandlerContext;
import io.netty.handler.codec.MessageToByteEncoder;

// 自定义编码器
public class DefinitionEncoder extends MessageToByteEncoder {

    @Override
    protected void encode(ChannelHandlerContext ctx, Object msg, ByteBuf out) throws Exception {
        String msgStr = msg.toString();
        byte[] bytes = msgStr.getBytes();

        byte[] send = new byte[bytes.length + 2];
        // 将bytes字节数组复制道send字节数组指定位置
        System.arraycopy(bytes,0,send,1,bytes.length);
        send[0] = 0x02; // 设置内容开始标志 02
        send[send.length - 1] = 0x03; // 设置内容结束标志 03

        // 写入
//        out.writeInt(send.length); // 写入 包长度
        out.writeBytes(send); // 写入内容信息
    }
}
